package net.csdn.business.common.domain.request.quota;

import lombok.Data;
import net.csdn.business.common.domain.validation.groups.System;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * @author likun
 * @date 2023/1/16 10:22
 */
@Data
public class QuotaConfigRequestDTO implements Serializable {
    /**
     * 当前登录用户ID
     */
    @NotBlank(message = "uid 不能为空", groups = {System.class})
    private String crrUserId;


    /**
     * 用户-创建项目数量限制（个）
     */
    @Min(value = 1)
    @NotNull(message = "用户创建项目数量不能为空")
    private Integer userMaxRepoNum;

    /**
     * 组织-创建项目数量限制（个）
     */
    @Min(value = 1)
    @NotNull(message = "组织创建项目数量不能为空")
    private Integer orgMaxRepoNum;

    /**
     * 创建组织数量限制（个）
     */
    @Min(value = 1)
    @NotNull(message = "创建组织数量限制不能为空")
    private Integer maxOrgNum;

    /**
     * 单个项目占用空间限制（MB）
     */
    @Min(value = 1)
    @NotNull(message = "单个项目占用空间限制不能为空")
    private Integer maxRepoVolume;

    /**
     * CI/CD时长限制（分钟/月）
     */
    @Min(value = 1)
    @NotNull(message = "CI/CD时长限制不能为空")
    private Integer maxCicdTime;
}